Tableau DesktopからLookerのExploreを参照してみた

Tableau DesktopからLookerのExploreを参照してみた

Clock Icon2024.06.25

さがらです。

パブリックプレビューですが、Tableau DesktopからLookerに接続するためのコネクタとして「Looker–Tableau Connector」が公開されています。

このコネクタを試してみたので、本記事でまとめてみます。

検証環境

  • Tableau Desktop:2024.1.0
  • Looker:24.8.21(Original版 ※Google Cloud Core版ではない以前からある形式)

Looker側の事前準備

まずはじめに、Looker側の準備として以下2つを行います。

  • SQL Interface機能を有効化する
  • LookerインスタンスにTableau OAuthアプリを追加する

SQL Interface機能を有効化する

SQL Interface機能ですが、JDBCを使用してTableauなどのサードパーティアプリケーションでLookMLモデルにアクセスさせることを可能にする機能です。

Lookerの、AdminLabsからSQL Interface機能を有効化すればOKです。

LookerインスタンスにTableau OAuthアプリを追加する

続いて、Tableauとの認証を行うためのアプリとしてTableau OAuthアプリを追加する必要があります。

まず、Lookerインスタンス上でAPI Explorerをインストールすることが必要です。Looker Marketplaceからインストールが可能です。下記のブログも参考になると思います。

API Explorerのインストールを終えたら、API Explorerを立ち上げます。

Search欄でRegister OAuth Appと入力し、表示されたRegister OAuth Appをクリックします。

表示されたページの右上のRun Itを押します。

client_guidbodyに以下の内容を入力し、I understand that this API endpoint will change data.にチェックを入れ、Runを押します。

client_guid:
35FBB268-0CB0-4822-AFE3-28638C1C6269

body:
{
"redirect_uri": "http://localhost:55556/Callback",
"display_name": "Tableau Desktop",
"description": "Tableau Desktop client for JDBC Server",
"enabled": true,
"group_id": ""
}

これでTableau OAuthアプリの追加は完了なのですが、動作確認もしてみます。

API ExplorerでGet OAuth Client Appと検索して表示された結果をクリックし、Run Itを押します。

cliend_guid35FBB268-0CB0-4822-AFE3-28638C1C6269と入力し、Runを押します。

これでResponseタブに切り替わった後、下図のように200: OKのレスポンスが得られていたらOKです。

Tableau Desktop側の事前準備

次にTableau Desktop側の事前準備ですが、以下2つを行う必要があります。

  • Tableau connector (.taco) fileのダウンロードと保存
  • JDBC driver (looker.jar) fileのダウンロードと保存

Tableau connector (.taco) fileのダウンロードと保存

まず、Tableau connector (.taco) fileのダウンロードします。

公式Docに記載のlooker-jdbc-v0.2.0.tacoをクリックしてダウンロードしてください。

その後、使用しているOSに応じて以下のフォルダにダウンロードしたファイルを保存してください。

  • Windows: C:\Users\[Windows User]\Documents\My Tableau Repository\Connectors
  • MacOS: /Users/[user]/Documents/My Tableau Repository/Connectors

私はWindowsユーザーなので、保存後このようになりました。

JDBC driver (looker.jar) fileのダウンロードと保存

まず、JDBC driver (looker.jar) fileのダウンロードを行います。

https://github.com/looker-open-source/calcite-avatica/releasesに移動し、最新バージョンのavatica-<release_number>-looker.jarファイルをダウンロードします。

その後、使用しているOSに応じて以下のフォルダにダウンロードしたファイルを保存してください。

  • Windows: C:\Program Files\Tableau\Drivers
  • MacOS: /Library/JDBC or ~/Library/JDBC

私はWindowsユーザーなので、保存後このようになりました。

Tableau DesktopからLookerに接続する

ここまでで事前準備は完了したので、Tableau DesktopからLookerに接続してみます!

Tableau Desktopを起動し、接続先としてGoogleによるLooker JDBCを選択します。

以下の情報を入力し、サインインを押します。

  • Server:`https://`を除いた、LookerインスタンスURL。`example.cloud.looker.com`など
  • Port:443
  • Authentication:OAuth
  • OAuth Instance Url:`https://`含むLookerインスタンスURL。`https://example.cloud.looker.com`など

ブラウザが立ちあがりLookerの認証画面が表示されるため、Allowを押します。

この画面が表示されたら、Tableau DesktopからLookerへの接続は完了です!

Tableau Desktop上でグラフ作成してみる

使用するModel・Exploreの選択

まず、Tableau Desktop上で使用するデータソースを決める必要があります。

はじめにスキーマを選択します。スキーマは、LookerでいうModelが該当しています。

次にテーブルを選択してドラッグ&ドロップします。テーブルは、LookerでいうExploreが該当しています。

選択を終えると、このように表示されました。

ちなみに、今すぐ更新を押すとエラーになりました。これはExplore上で定義したすべてのdimensionとmeasureを選択した状態のデータを求めているので、Lookerが返す結果は5000行という上限もあるため、このエラーは避けられなそうですね…

グラフを作成してみる

では、少しグラフを作ってみたいと思います。

各フィールドは、<view名>.<field名>で表示されています。LookerでいうdimensionがTableau上でもディメンションとして扱われ、LookerでいうmeasureがTableau上でもメジャーとして扱われています。

1つ目のグラフとして、下図のdimensionとmeasureを使って、Lookerのデフォルトでは作成が難しいツリーマップを作成してみました。

2つ目のグラフとして、1つ目よりも少し複雑な条件式を用いたdimensionとmeasureを用いて、簡易的なファネル分析を行えるグラフを作成してみました。

注意点

まだパブリックプレビューということもあるのですが、気になる点もありました。

Always Filterを設定していると、何を選択してもエラーになってしまう

LookerではAlways Filterという形でExploreに対して特定のフィールドで必ずフィルタを行うように設定が出来るのですが、Always Filterを設定していると何を選択してもエラーが返ってきました。

LookMLのtype:locationはエラーとなる

Lookerでは緯度と経度を持つカラムを指定することで定義できるtype:locationのdimensionがあるのですが、これをTableau上で選択するとエラーとなりました。

LookMLのtype:tierがエラーとなる

Lookerでは、下図のように値を配列形式で並べて、各値の間に含まれる値をグルーピング出来るtype:tierのdimensionがあるのですが、これ単体の選択だとエラーにならないのですが、1つでもメジャーを追加するとエラーとなりました。

LookMLで定義したlabelが表示されない

Lookerではlabelという形で、エンドユーザーによりわかりやすい命名に変更して表示させることが可能ですが、LookMLで定義したlabelは表示されませんでした。

  • Lookerでの定義

  • Tableau上の表示

最後に

Tableau DesktopからLookerに接続できるコネクタ「Looker–Tableau Connector」を試してみました。

LookML上で多少の計算式・条件式を含んだdimensionやmeasureを定義していても、Tableau上で可視化できるのは良かったですね。「LookerをSemantic Layerとして使えている」と感じました。

あとは、記事中でも書いたようにAlways Filterやtype:tierのdimensionなどLooker特有の機能を使っているとTableau側でうまく表示できない所がありましたので、このあたりは一般提供時に改善されると嬉しいですね!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.